package com.neutech.maplestory.entity;

import com.neutech.maplestory.client.MapleStoryClient;

import java.awt.*;

/**
 * 抽象类实现画和移动的接口，以及作为被继承的类初始化必要的数据
 */
public abstract class AbstractMapleStoryObject implements Drawable, Moveable {
    /**
     * x做标
     */
    public int x;
    /**
     * y做标
     */
    public int y;
    /**
     * 速度
     */
    public int speed;
    /**
     * 人物图片的宽和高
     */
    public int width;
    public int height;
    /**
     * 图片数组，因为要好多张图片切换才能变成动图
     */
    public Image[] images;
    /**
     * 当前人物的方向
     */
    public Direction dir;
    /**
     * 当前人物的状态
     */
    public Action action;
    /**
     * 当前人物的匍匐
     */

    /**
     * new一个主函数拥有弓箭集合的类
     */
    public MapleStoryClient msc;
    /**
     * 死
     */
    public boolean live;

    /**
     * 怪物的血条
     */
    public int HP;

    /**
     * 重写的move方法，这样在继承的时候，可以选择是否选择move方法
     */
    @Override
    public void move() {

    }

    /**
     * 碰撞监测的方法，用这个方法就能实现碰撞监测
     *
     * @return
     */
    public Rectangle getRectangle() {
        return new Rectangle(x, y, width, height);

    }


}
